package com.uam.sgr.retiro.actions;

import java.util.List;
import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.uam.sgr.retiro.dto.DetalleTramiteDTO;
import com.uam.sgr.retiro.dto.TramiteDTO;
import com.uam.sgr.retiro.services.BuscarSRCicloServiceI;
import com.uam.sgr.retiro.services.ConsultarTramiteServiceI;
import com.uam.sgr.retiro.services.GenerarRCursoServiceI;
import com.uam.sgr.retiro.services.RetiroBusinessDelegate;
import com.uam.sgr.seguridad.dto.UsuarioMixDTO;


public class TramiteAction extends ActionSupport {

	private static final long serialVersionUID = 1L;
	private Map<String, Object> miSesion;
	private GenerarRCursoServiceI objGenerarRCursoService = RetiroBusinessDelegate
			.getGenerarRCursoService();
	private ConsultarTramiteServiceI objConsultarTramiteService = RetiroBusinessDelegate
	.getConsultarTramiteService();
	
	private BuscarSRCicloServiceI objBuscarSRCicloService = RetiroBusinessDelegate
	.getBuscarSRCicloService();
	private String[] cursos;

	private String motivo;
	
	private List<TramiteDTO> lstTramite;

	private List<TramiteDTO> lstTramiteRetiroCiclo;
	
	
	
	public List<TramiteDTO> getLstTramiteRetiroCiclo() {
		return lstTramiteRetiroCiclo;
	}

	public void setLstTramiteRetiroCiclo(List<TramiteDTO> lstTramiteRetiroCiclo) {
		this.lstTramiteRetiroCiclo = lstTramiteRetiroCiclo;
	}

	public List<TramiteDTO> getLstTramite() {
		return lstTramite;
	}

	public void setLstTramite(List<TramiteDTO> lstTramite) {
		this.lstTramite = lstTramite;
	}

	public String[] getCursos() {
		return cursos;
	}

	public void setCursos(String[] cursos) {
		this.cursos = cursos;
	}

	public String getMotivo() {
		return motivo;
	}

	public void setMotivo(String motivo) {
		this.motivo = motivo;
	}

	public String generarRetiroCurso() {
		int codTramite = 0;
		DetalleTramiteDTO detalleTramite = new DetalleTramiteDTO();
		
		miSesion = ActionContext.getContext().getSession();
		
		UsuarioMixDTO usuario = null;
		
		usuario = (UsuarioMixDTO) miSesion.get("usuario");
		
		TramiteDTO tramite = new TramiteDTO();
		
		tramite.setCodUsu(usuario.getCodUsu());
		tramite.setMotivo(motivo);
		
		tramite.setTipo("Retiro de Curso");
		tramite.setEstado("PROCEDE");
		
		objGenerarRCursoService.insertarTramite(tramite);
		
		codTramite = objGenerarRCursoService.seleccionarUltimoTramite();
		
		
		
		detalleTramite.setCodTramite(codTramite);
		
		for (String s : cursos) {
			int codCurso = Integer.parseInt(s);
			detalleTramite.setCodCurso(codCurso);
		    objGenerarRCursoService.insertarDetalleTramite(detalleTramite);
		    objGenerarRCursoService.actualizarVacante(codCurso);

		}
		
		
		

		return SUCCESS;
	}
	
	
	public String cargaTramite() {

		miSesion = ActionContext.getContext().getSession();

		 
		UsuarioMixDTO usuario= new UsuarioMixDTO();

		usuario = (UsuarioMixDTO)miSesion.get("usuario");

		lstTramite = objConsultarTramiteService.listaTramitexAlumno(usuario.getCodUsu());

		miSesion.put("lstTramite", lstTramite);

		// miSesion .put(key, value)

		return SUCCESS;

	}
	
	public String cargaTramiteRetiroCiclo() {

		miSesion = ActionContext.getContext().getSession();
		lstTramiteRetiroCiclo = objBuscarSRCicloService.listaTramiteRetiroCiclo();
        miSesion.put("lstTramiteRetiroCiclo", lstTramiteRetiroCiclo);
     
        return SUCCESS;

	}


}
